home *** CD-ROM | disk | FTP | other *** search
- dnl
- dnl Copyright 2005-2006 Sun Microsystems, Inc. All rights reserved.
- dnl
- dnl Permission is hereby granted, free of charge, to any person obtaining a
- dnl copy of this software and associated documentation files (the
- dnl "Software"), to deal in the Software without restriction, including
- dnl without limitation the rights to use, copy, modify, merge, publish,
- dnl distribute, and/or sell copies of the Software, and to permit persons
- dnl to whom the Software is furnished to do so, provided that the above
- dnl copyright notice(s) and this permission notice appear in all copies of
- dnl the Software and that both the above copyright notice(s) and this
- dnl permission notice appear in supporting documentation.
- dnl
- dnl THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
- dnl OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
- dnl MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT
- dnl OF THIRD PARTY RIGHTS. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR
- dnl HOLDERS INCLUDED IN THIS NOTICE BE LIABLE FOR ANY CLAIM, OR ANY SPECIAL
- dnl INDIRECT OR CONSEQUENTIAL DAMAGES, OR ANY DAMAGES WHATSOEVER RESULTING
- dnl FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT,
- dnl NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION
- dnl WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
- dnl
- dnl Except as contained in this notice, the name of a copyright holder
- dnl shall not be used in advertising or otherwise to promote the sale, use
- dnl or other dealings in this Software without prior written authorization
- dnl of the copyright holder.
-
- # XORG_MACROS_VERSION(required-version)
- # -------------------------------------
- # Minimum version: 1.1.0
- #
- # If you're using a macro added in Version 1.1 or newer, include this in
- # your configure.ac with the minimum required version, such as:
- # XORG_MACROS_VERSION(1.1)
- #
- # To force at least a version with this macro defined, also add:
- # m4_ifndef([XORG_MACROS_VERSION], [AC_FATAL([must install xorg-macros 1.1 or later before running autoconf/autogen])])
- #
- #
- # See the "minimum version" comment for each macro you use to see what
- # version you require.
- AC_DEFUN([XORG_MACROS_VERSION],[
- [XORG_MACROS_needed_version=$1
- XORG_MACROS_needed_major=`echo $XORG_MACROS_needed_version | sed 's/\..*$//'`
- XORG_MACROS_needed_minor=`echo $XORG_MACROS_needed_version | sed -e 's/^[0-9]*\.//' -e 's/\..*$//'`]
- AC_MSG_CHECKING([if xorg-macros used to generate configure is at least ${XORG_MACROS_needed_major}.${XORG_MACROS_needed_minor}])
- [XORG_MACROS_version=1.1.2
- XORG_MACROS_major=`echo $XORG_MACROS_version | sed 's/\..*$//'`
- XORG_MACROS_minor=`echo $XORG_MACROS_version | sed -e 's/^[0-9]*\.//' -e 's/\..*$//'`]
- if test $XORG_MACROS_major -ne $XORG_MACROS_needed_major ; then
- AC_MSG_ERROR([configure built with incompatible version of xorg-macros.m4 - requires version ${XORG_MACROS_major}.x])
- fi
- if test $XORG_MACROS_minor -lt $XORG_MACROS_needed_minor ; then
- AC_MSG_ERROR([configure built with too old of a version of xorg-macros.m4 - requires version ${XORG_MACROS_major}.${XORG_MACROS_minor}.0 or newer])
- fi
- AC_MSG_RESULT([yes, $XORG_MACROS_version])
- ]) # XORG_MACROS_VERSION
-
- # XORG_PROG_RAWCPP()
- # ------------------
- # Minimum version: 1.0.0
- #
- # Find cpp program and necessary flags for use in pre-processing text files
- # such as man pages and config files
- AC_DEFUN([XORG_PROG_RAWCPP],[
- AC_REQUIRE([AC_PROG_CPP])
- AC_PATH_PROGS(RAWCPP, [cpp], [${CPP}],
- [$PATH:/bin:/usr/bin:/usr/lib:/usr/libexec:/usr/ccs/lib:/usr/ccs/lbin:/lib])
-
- # Check for flag to avoid builtin definitions - assumes unix is predefined,
- # which is not the best choice for supporting other OS'es, but covers most
- # of the ones we need for now.
- AC_MSG_CHECKING([if $RAWCPP requires -undef])
- AC_LANG_CONFTEST([Does cpp redefine unix ?])
- if test `${RAWCPP} < conftest.$ac_ext | grep -c 'unix'` -eq 1 ; then
- AC_MSG_RESULT([no])
- else
- if test `${RAWCPP} -undef < conftest.$ac_ext | grep -c 'unix'` -eq 1 ; then
- RAWCPPFLAGS=-undef
- AC_MSG_RESULT([yes])
- else
- AC_MSG_ERROR([${RAWCPP} defines unix with or without -undef. I don't know what to do.])
- fi
- fi
- rm -f conftest.$ac_ext
-
- AC_MSG_CHECKING([if $RAWCPP requires -traditional])
- AC_LANG_CONFTEST([Does cpp preserve "whitespace"?])
- if test `${RAWCPP} < conftest.$ac_ext | grep -c 'preserve \"'` -eq 1 ; then
- AC_MSG_RESULT([no])
- else
- if test `${RAWCPP} -traditional < conftest.$ac_ext | grep -c 'preserve \"'` -eq 1 ; then
- RAWCPPFLAGS="${RAWCPPFLAGS} -traditional"
- AC_MSG_RESULT([yes])
- else
- AC_MSG_ERROR([${RAWCPP} does not preserve whitespace with or without -traditional. I don't know what to do.])
- fi
- fi
- rm -f conftest.$ac_ext
- AC_SUBST(RAWCPPFLAGS)
- ]) # XORG_PROG_RAWCPP
-
- # XORG_MANPAGE_SECTIONS()
- # -----------------------
- # Minimum version: 1.0.0
- #
- # Determine which sections man pages go in for the different man page types
- # on this OS - replaces *ManSuffix settings in old Imake *.cf per-os files.
- # Not sure if there's any better way than just hardcoding by OS name.
- # Override default settings by setting environment variables
-
- AC_DEFUN([XORG_MANPAGE_SECTIONS],[
- AC_REQUIRE([AC_CANONICAL_HOST])
-
- if test x$APP_MAN_SUFFIX = x ; then
- APP_MAN_SUFFIX=1
- fi
- if test x$APP_MAN_DIR = x ; then
- APP_MAN_DIR='$(mandir)/man$(APP_MAN_SUFFIX)'
- fi
-
- if test x$LIB_MAN_SUFFIX = x ; then
- LIB_MAN_SUFFIX=3
- fi
- if test x$LIB_MAN_DIR = x ; then
- LIB_MAN_DIR='$(mandir)/man$(LIB_MAN_SUFFIX)'
- fi
-
- if test x$FILE_MAN_SUFFIX = x ; then
- case $host_os in
- solaris*) FILE_MAN_SUFFIX=4 ;;
- *) FILE_MAN_SUFFIX=5 ;;
- esac
- fi
- if test x$FILE_MAN_DIR = x ; then
- FILE_MAN_DIR='$(mandir)/man$(FILE_MAN_SUFFIX)'
- fi
-
- if test x$MISC_MAN_SUFFIX = x ; then
- case $host_os in
- solaris*) MISC_MAN_SUFFIX=5 ;;
- *) MISC_MAN_SUFFIX=7 ;;
- esac
- fi
- if test x$MISC_MAN_DIR = x ; then
- MISC_MAN_DIR='$(mandir)/man$(MISC_MAN_SUFFIX)'
- fi
-
- if test x$DRIVER_MAN_SUFFIX = x ; then
- case $host_os in
- solaris*) DRIVER_MAN_SUFFIX=7 ;;
- *) DRIVER_MAN_SUFFIX=4 ;;
- esac
- fi
- if test x$DRIVER_MAN_DIR = x ; then
- DRIVER_MAN_DIR='$(mandir)/man$(DRIVER_MAN_SUFFIX)'
- fi
-
- if test x$ADMIN_MAN_SUFFIX = x ; then
- case $host_os in
- solaris*) ADMIN_MAN_SUFFIX=1m ;;
- *) ADMIN_MAN_SUFFIX=8 ;;
- esac
- fi
- if test x$ADMIN_MAN_DIR = x ; then
- ADMIN_MAN_DIR='$(mandir)/man$(ADMIN_MAN_SUFFIX)'
- fi
-
-
- AC_SUBST([APP_MAN_SUFFIX])
- AC_SUBST([LIB_MAN_SUFFIX])
- AC_SUBST([FILE_MAN_SUFFIX])
- AC_SUBST([MISC_MAN_SUFFIX])
- AC_SUBST([DRIVER_MAN_SUFFIX])
- AC_SUBST([ADMIN_MAN_SUFFIX])
- AC_SUBST([APP_MAN_DIR])
- AC_SUBST([LIB_MAN_DIR])
- AC_SUBST([FILE_MAN_DIR])
- AC_SUBST([MISC_MAN_DIR])
- AC_SUBST([DRIVER_MAN_DIR])
- AC_SUBST([ADMIN_MAN_DIR])
- ]) # XORG_MANPAGE_SECTIONS
-
- # XORG_CHECK_LINUXDOC
- # -------------------
- # Minimum version: 1.0.0
- #
- # Defines the variable MAKE_TEXT if the necessary tools and
- # files are found. $(MAKE_TEXT) blah.sgml will then produce blah.txt.
- # Whether or not the necessary tools and files are found can be checked
- # with the AM_CONDITIONAL "BUILD_LINUXDOC"
- AC_DEFUN([XORG_CHECK_LINUXDOC],[
- XORG_SGML_PATH=$prefix/share/sgml
- HAVE_DEFS_ENT=
-
- AC_CHECK_FILE([$XORG_SGML_PATH/X11/defs.ent], [HAVE_DEFS_ENT=yes])
-
- AC_PATH_PROG(LINUXDOC, linuxdoc)
- AC_PATH_PROG(PS2PDF, ps2pdf)
-
- AC_MSG_CHECKING([Whether to build documentation])
-
- if test x$HAVE_DEFS_ENT != x && test x$LINUXDOC != x ; then
- BUILDDOC=yes
- else
- BUILDDOC=no
- fi
-
- AM_CONDITIONAL(BUILD_LINUXDOC, [test x$BUILDDOC = xyes])
-
- AC_MSG_RESULT([$BUILDDOC])
-
- AC_MSG_CHECKING([Whether to build pdf documentation])
-
- if test x$PS2PDF != x && test x$BUILD_PDFDOC != xno; then
- BUILDPDFDOC=yes
- else
- BUILDPDFDOC=no
- fi
-
- AM_CONDITIONAL(BUILD_PDFDOC, [test x$BUILDPDFDOC = xyes])
-
- AC_MSG_RESULT([$BUILDPDFDOC])
-
- MAKE_TEXT="SGML_SEARCH_PATH=$XORG_SGML_PATH GROFF_NO_SGR=y $LINUXDOC -B txt"
- MAKE_PS="SGML_SEARCH_PATH=$XORG_SGML_PATH $LINUXDOC -B latex --papersize=letter --output=ps"
- MAKE_PDF="$PS2PDF"
- MAKE_HTML="SGML_SEARCH_PATH=$XORG_SGML_PATH $LINUXDOC -B html --split=0"
-
- AC_SUBST(MAKE_TEXT)
- AC_SUBST(MAKE_PS)
- AC_SUBST(MAKE_PDF)
- AC_SUBST(MAKE_HTML)
- ]) # XORG_CHECK_LINUXDOC
-
- # XORG_CHECK_DOCBOOK
- # -------------------
- # Minimum version: 1.0.0
- #
- # Checks for the ability to build output formats from SGML DocBook source.
- # For XXX in {TXT, PDF, PS, HTML}, the AM_CONDITIONAL "BUILD_XXXDOC"
- # indicates whether the necessary tools and files are found and, if set,
- # $(MAKE_XXX) blah.sgml will produce blah.xxx.
- AC_DEFUN([XORG_CHECK_DOCBOOK],[
- XORG_SGML_PATH=$prefix/share/sgml
- HAVE_DEFS_ENT=
- BUILDTXTDOC=no
- BUILDPDFDOC=no
- BUILDPSDOC=no
- BUILDHTMLDOC=no
-
- AC_CHECK_FILE([$XORG_SGML_PATH/X11/defs.ent], [HAVE_DEFS_ENT=yes])
-
- AC_PATH_PROG(DOCBOOKPS, docbook2ps)
- AC_PATH_PROG(DOCBOOKPDF, docbook2pdf)
- AC_PATH_PROG(DOCBOOKHTML, docbook2html)
- AC_PATH_PROG(DOCBOOKTXT, docbook2txt)
-
- AC_MSG_CHECKING([Whether to build text documentation])
- if test x$HAVE_DEFS_ENT != x && test x$DOCBOOKTXT != x &&
- test x$BUILD_TXTDOC != xno; then
- BUILDTXTDOC=yes
- fi
- AM_CONDITIONAL(BUILD_TXTDOC, [test x$BUILDTXTDOC = xyes])
- AC_MSG_RESULT([$BUILDTXTDOC])
-
- AC_MSG_CHECKING([Whether to build PDF documentation])
- if test x$HAVE_DEFS_ENT != x && test x$DOCBOOKPDF != x &&
- test x$BUILD_PDFDOC != xno; then
- BUILDPDFDOC=yes
- fi
- AM_CONDITIONAL(BUILD_PDFDOC, [test x$BUILDPDFDOC = xyes])
- AC_MSG_RESULT([$BUILDPDFDOC])
-
- AC_MSG_CHECKING([Whether to build PostScript documentation])
- if test x$HAVE_DEFS_ENT != x && test x$DOCBOOKPS != x &&
- test x$BUILD_PSDOC != xno; then
- BUILDPSDOC=yes
- fi
- AM_CONDITIONAL(BUILD_PSDOC, [test x$BUILDPSDOC = xyes])
- AC_MSG_RESULT([$BUILDPSDOC])
-
- AC_MSG_CHECKING([Whether to build HTML documentation])
- if test x$HAVE_DEFS_ENT != x && test x$DOCBOOKHTML != x &&
- test x$BUILD_HTMLDOC != xno; then
- BUILDHTMLDOC=yes
- fi
- AM_CONDITIONAL(BUILD_HTMLDOC, [test x$BUILDHTMLDOC = xyes])
- AC_MSG_RESULT([$BUILDHTMLDOC])
-
- MAKE_TEXT="SGML_SEARCH_PATH=$XORG_SGML_PATH $DOCBOOKTXT"
- MAKE_PS="SGML_SEARCH_PATH=$XORG_SGML_PATH $DOCBOOKPS"
- MAKE_PDF="SGML_SEARCH_PATH=$XORG_SGML_PATH $DOCBOOKPDF"
- MAKE_HTML="SGML_SEARCH_PATH=$XORG_SGML_PATH $DOCBOOKHTML"
-
- AC_SUBST(MAKE_TEXT)
- AC_SUBST(MAKE_PS)
- AC_SUBST(MAKE_PDF)
- AC_SUBST(MAKE_HTML)
- ]) # XORG_CHECK_DOCBOOK
-
- # XORG_CHECK_MALLOC_ZERO
- # ----------------------
- # Minimum version: 1.0.0
- #
- # Defines {MALLOC,XMALLOC,XTMALLOC}_ZERO_CFLAGS appropriately if
- # malloc(0) returns NULL. Packages should add one of these cflags to
- # their AM_CFLAGS (or other appropriate *_CFLAGS) to use them.
- AC_DEFUN([XORG_CHECK_MALLOC_ZERO],[
- AC_ARG_ENABLE(malloc0returnsnull,
- AC_HELP_STRING([--enable-malloc0returnsnull],
- [malloc(0) returns NULL (default: auto)]),
- [MALLOC_ZERO_RETURNS_NULL=$enableval],
- [MALLOC_ZERO_RETURNS_NULL=auto])
-
- AC_MSG_CHECKING([whether malloc(0) returns NULL])
- if test "x$MALLOC_ZERO_RETURNS_NULL" = xauto; then
- AC_RUN_IFELSE([
- char *malloc();
- char *realloc();
- char *calloc();
- main() {
- char *m0, *r0, *c0, *p;
- m0 = malloc(0);
- p = malloc(10);
- r0 = realloc(p,0);
- c0 = calloc(0);
- exit(m0 == 0 || r0 == 0 || c0 == 0 ? 0 : 1);
- }],
- [MALLOC_ZERO_RETURNS_NULL=yes],
- [MALLOC_ZERO_RETURNS_NULL=no])
- fi
- AC_MSG_RESULT([$MALLOC_ZERO_RETURNS_NULL])
-
- if test "x$MALLOC_ZERO_RETURNS_NULL" = xyes; then
- MALLOC_ZERO_CFLAGS="-DMALLOC_0_RETURNS_NULL"
- XMALLOC_ZERO_CFLAGS=$MALLOC_ZERO_CFLAGS
- XTMALLOC_ZERO_CFLAGS="$MALLOC_ZERO_CFLAGS -DXTMALLOC_BC"
- else
- MALLOC_ZERO_CFLAGS=""
- XMALLOC_ZERO_CFLAGS=""
- XTMALLOC_ZERO_CFLAGS=""
- fi
-
- AC_SUBST([MALLOC_ZERO_CFLAGS])
- AC_SUBST([XMALLOC_ZERO_CFLAGS])
- AC_SUBST([XTMALLOC_ZERO_CFLAGS])
- ]) # XORG_CHECK_MALLOC_ZERO
-
- # XORG_WITH_LINT()
- # ----------------
- # Minimum version: 1.1.0
- #
- # Sets up flags for source checkers such as lint and sparse if --with-lint
- # is specified. (Use --with-lint=sparse for sparse.)
- # Sets $LINT to name of source checker passed with --with-lint (default: lint)
- # Sets $LINT_FLAGS to flags to pass to source checker
- # Sets LINT automake conditional if enabled (default: disabled)
- #
- AC_DEFUN([XORG_WITH_LINT],[
-
- # Allow checking code with lint, sparse, etc.
- AC_ARG_WITH(lint, [AC_HELP_STRING([--with-lint],
- [Use a lint-style source code checker (default: disabled)])],
- [use_lint=$withval], [use_lint=no])
- if test "x$use_lint" = "xyes" ; then
- LINT="lint"
- else
- LINT="$use_lint"
- fi
- if test "x$LINT_FLAGS" = "x" -a "x$LINT" != "xno" ; then
- case $LINT in
- lint|*/lint)
- case $host_os in
- solaris*)
- LINT_FLAGS="-u -b -h -erroff=E_INDISTING_FROM_TRUNC2"
- ;;
- esac
- ;;
- esac
- fi
-
- AC_SUBST(LINT)
- AC_SUBST(LINT_FLAGS)
- AM_CONDITIONAL(LINT, [test x$LINT != xno])
-
- ]) # XORG_WITH_LINT
-
- # XORG_LINT_LIBRARY(LIBNAME)
- # --------------------------
- # Minimum version: 1.1.0
- #
- # Sets up flags for building lint libraries for checking programs that call
- # functions in the library.
- # Disabled by default, enable with --enable-lint-library
- # Sets:
- # @LINTLIB@ - name of lint library file to make
- # MAKE_LINT_LIB - automake conditional
- #
-
- AC_DEFUN([XORG_LINT_LIBRARY],[
- AC_REQUIRE([XORG_WITH_LINT])
- # Build lint "library" for more indepth checks of programs calling this library
- AC_ARG_ENABLE(lint-library, [AC_HELP_STRING([--enable-lint-library],
- [Create lint library (default: disabled)])],
- [make_lint_lib=$enableval], [make_lint_lib=no])
- if test "x$make_lint_lib" != "xno" ; then
- if test "x$LINT" = "xno" ; then
- AC_MSG_ERROR([Cannot make lint library without --with-lint])
- fi
- if test "x$make_lint_lib" = "xyes" ; then
- LINTLIB=llib-l$1.ln
- else
- LINTLIB=$make_lint_lib
- fi
- fi
- AC_SUBST(LINTLIB)
- AM_CONDITIONAL(MAKE_LINT_LIB, [test x$make_lint_lib != xno])
-
- ]) # XORG_LINT_LIBRARY
-